﻿// ----------------------------------------------------------------------------------------
// Author:                    Magaly Vargas y Joaquín López
// Company:                   ALBALIA INTERACTIVA S.L.
// Assembly version:          1.0.0.0
// Date:                      22/02/2010
// Time:                      12:00
// Solution Name:             OffInvoiceWordAddIn
// Solution Filename:         OffInvoiceWordAddIn
// Solution FullFilename:     C:\Desarrollo\OffInvoiceWordAddIn
// Project Name:              OffInvoiceWordAddIn
// Project Filename:          OffInvoiceWordAddIn.csproj
// Project FullFilename:      C:\Desarrollo\OffInvoiceWordAddIn\OffInvoiceWordAddIn.csproj
// Project Item Name:         XmlInvoice.cs
// Project Item Filename:     XmlInvoice.cs
// Project Item FullFilename: C:\Desarrollo\OffInvoiceWordAddIn\XmlMngFiles\XmlInvoice.cs
// Project Item Kind:         Código
// Purpose:                   
//Copyright © 2009 - 2010 Albalia Interactiva S.L. Reservados todos los derechos.
// ----------------------------------------------------------------------------------------


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;

namespace OffInvoiceWordAddIn.XmlMngFiles
{
    /// <summary>
    /// crea el registro de una nueva factura en el fichero de gestion
    /// </summary>
    public class XmlInvoice
    {
        # region fields

        /// <summary>
        /// serie de la factura 
        /// </summary>
        [XmlAttribute]
        public string Serie { get; set; }


        /// <summary>
        /// idetificador de la factura creada, debe ser único
        /// </summary>
        [XmlAttribute]
        public string N_factura { get; set; }

        /// <summary>
        /// identificador de la compañía
        /// </summary>
        [XmlAttribute]
        public string CIF { get; set; }

        /// <summary>
        /// nombre del cliente de la factura
        /// </summary>
        [XmlAttribute]
        public string CustomerName { get; set; }

        /// <summary>
        /// 1º Apellido del cliente de la factura
        /// </summary>
        [XmlAttribute]
        public string  CustomerFirstName { get; set; }

        /// <summary>
        /// 2º Apellido del cliente de la factura
        /// </summary>
        [XmlAttribute]
        public string  CustomerSecondName { get; set; }

        /// <summary>
        /// Nombre del emisor de la factura
        /// </summary>
        [XmlAttribute]
        public string IssuerName { get; set; }

        /// <summary>
        /// 1º Apellido del emisor de la factura
        /// </summary>
        [XmlAttribute]
        public string IssuerFirstName { get; set; }

        /// <summary>
        /// 2º Apellido del emisor de la factura
        /// </summary>
        [XmlAttribute]
        public string IssuerSecondName { get; set; }

        /// <summary>
        /// serie de la factura 
        /// </summary>
        [XmlAttribute]
        public string Fecha { get; set; }

        /// <summary>
        /// importe total de la factura 
        /// </summary>
        [XmlAttribute]
        public string TotalImport { get; set; }

        /// <summary>
        /// estado o tipo de la factura: emitida, recibida o borrador
        /// /// </summary>
        [XmlAttribute]
        public string Status { get; set; }

        /// <summary>
        /// estado o tipo de la factura: emitida, recibida o borrador
        /// /// </summary>
        [XmlAttribute]
        public string Marca { get; set; }


        /// <summary>
        /// ruta donde se encuentra la factura 
        /// </summary>
        [XmlAttribute]
        public string Path { get; set; }

        /// <summary>
        /// Propiedad de tipo string que almacena el tipo de factura
        /// </summary>
        public string InvoiceType { get; set; }

       


        #endregion


        #region "Constructors"


        /// <summary>
        /// construye una facturaXml con los atributos vacios
        /// </summary>
        public XmlInvoice()
        {
            this.Serie = "";
            this.N_factura = "";
            this.CIF = "";
            this.CustomerName = "";
            this.CustomerFirstName = "";
            this.CustomerSecondName = "";
            this.IssuerName = "";
            this.IssuerFirstName = "";
            this.IssuerSecondName = "";

            this.Fecha = "";
            this.TotalImport = "";
            this.Status = "";
            this.Marca = "";
            this.Path = "";
            this.InvoiceType = "";
        }
        
        /// <summary>
        /// Método en el que se crea la estructura xml de una factura
        /// </summary>
        /// <param name="serie">Serie de la factura</param>
        /// <param name="n_Factura">Numero de la factura</param>
        /// <param name="cif">Cif del cliente</param>
        /// <param name="customerName">Nombre del cliente</param>
        /// <param name="customerFirstName">1º Apellido del cliente</param>
        /// <param name="customerSecondName">2º Apellido del cliente</param>
        /// <param name="issuerName">Nombre del emisor</param>
        /// <param name="issuerFirstName">1º Apellido del emisor</param>
        /// <param name="issuerSecondName">2º Apellido del emisor</param>
        /// <param name="fecha">Fecha de la factura</param>
        /// <param name="totalImport">Total de la factura</param>
        /// <param name="status">Estado de la factura</param>
        /// <param name="marca">Marca de la factura</param>
        /// <param name="path">Ruta donde se almacena la factura</param>
        /// <param name="invoiceType">Tipo de factura</param>
        public XmlInvoice(string serie,string n_Factura,string cif, string customerName,string customerFirstName, string customerSecondName, string issuerName,string issuerFirstName, string issuerSecondName,string fecha, string totalImport, string status,string marca,string path,string invoiceType )
        {
            this.Serie = serie;
            this.N_factura = n_Factura;
            this.CIF = cif;
            this.CustomerName = customerName;
            this.CustomerFirstName = customerFirstName;
            this.CustomerSecondName = customerSecondName;
            this.IssuerName = issuerName;
            this.IssuerFirstName = issuerFirstName;
            this.IssuerSecondName = issuerSecondName;
            this.Fecha = fecha;
            this.TotalImport = totalImport;
            this.Status = status;
            this.Marca = marca;
            this.Path = path;
            this.InvoiceType=invoiceType;
        }


        #endregion

    }
}
